/****************************************************************************
	This file is part of Basqet.

	Basqet is free software: you can redistribute it and/or modify
	it under the terms of the GNU General Public License as published by
	the Free Software Foundation, either version 3 of the License, or
	(at your option) any later version.

	Basqet is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
	GNU General Public License for more details.

	You should have received a copy of the GNU General Public License
    along with Basqet.  If not, see <http://www.gnu.org/licenses/>.

****************************************************************************/


#include "copyrecursiveworker.h"

#include <QDir>
#include <QFile>

#include <QtDebug>
CopyRecursiveWorker::CopyRecursiveWorker()
{
}


void CopyRecursiveWorker::copyRecursive(QFileInfo copyFrom, QFileInfo copyTo)
{
	qDebug() << "Copy files from" << copyFrom.filePath();
	qDebug() << "             to" << copyTo.filePath();

	if (copyFrom.isDir())
	{

		qDebug() << "mkdir " << copyTo.filePath();

		QDir currentDir(copyFrom.filePath());

		currentDir.mkdir(copyTo.filePath());

		QFileInfoList content = currentDir.entryInfoList(QDir::AllDirs | QDir::NoDotAndDotDot | QDir::Files);

		foreach(QFileInfo entry, content)
		{
			if (entry.isDir())
			{
				copyRecursive(QFileInfo(copyFrom.filePath(), entry.fileName()),
								QFileInfo(copyTo.filePath(), entry.fileName()));
			}
			else if (entry.isFile())
			{
				qDebug() << "Copy file:" << entry.filePath();
				qDebug() << "       to:" << QFileInfo(copyTo.filePath(), entry.fileName()).filePath();
				QFile::copy(entry.filePath(), QFileInfo(copyTo.filePath(), entry.fileName()).filePath());
				// currentDir.remove(entry.filePath());
			}
			else
			{
				qDebug() << "Cannot backup, neither file nor directory:" << entry.filePath();
			}
		}

		// currentDir.rmdir(base.filePath());

	}

}
